using AiQiuQuan.Sport.Model.Enums;

namespace AiQiuQuan.Sport.WebApi.Entities
{
    /// <summary>
    /// 比赛淘汰赛对阵
    /// </summary>
    public class GameKnockoutVersus : BaseEntity
    {
        /// <summary>
        /// 比赛ID
        /// </summary>
        public Guid GameId { get; set; }

        /// <summary>
        /// 对阵类型，1单打、2双打、3男单、4女单、5男双、6女双、7混双
        /// </summary>
        public GameVersusEnum VersusType { get; set; }

        /// <summary>
        /// 淘汰赛轮次ID
        /// </summary>
        public Guid KnockoutRoundsId { get; set; }

        /// <summary>
        /// 当前淘汰赛队伍数
        /// </summary>
        public int KnockoutCount { get; set; }

        /// <summary>
        /// 淘汰赛阶段名称
        /// </summary>
        public string KnockoutName { get; set; }

        /// <summary>
        /// 轮次内序号
        /// </summary>
        public int LoopNo { get; set; }

        /// <summary>
        /// 左边队伍编号
        /// </summary>
        public string Team1No { get; set; }

        /// <summary>
        /// 左边队伍用户1ID
        /// </summary>
        public Guid? Team1User1Id { get; set; }

        /// <summary>
        /// 左边队伍用户2ID
        /// </summary>
        public Guid? Team1User2Id { get; set; }

        /// <summary>
        /// 左边队伍得分
        /// </summary>
        public int Team1Score { get; set; }

        /// <summary>
        /// 左边队伍附加比分
        /// </summary>
        public int Team1ExtraScore { get; set; }

        /// <summary>
        /// 右边队伍编号
        /// </summary>
        public string Team2No { get; set; }

        /// <summary>
        /// 右边队伍用户1ID
        /// </summary>
        public Guid? Team2User1Id { get; set; }

        /// <summary>
        /// 右边队伍用户2ID
        /// </summary>
        public Guid? Team2User2Id { get; set; }

        /// <summary>
        /// 右边队伍得分
        /// </summary>
        public int Team2Score { get; set; }

        /// <summary>
        /// 右边队伍附加比分
        /// </summary>
        public int Team2ExtraScore { get; set; }

        /// <summary>
        /// 开始名次
        /// </summary>
        public int StartRank { get; set; }

        /// <summary>
        /// 结束名次
        /// </summary>
        public int EndRank { get; set; }

        /// <summary>
        /// 是否双打
        /// </summary>
        public bool IsDouble { get; set; }

        /// <summary>
        /// 是否结束
        /// </summary>
        public bool IsFinished { get; set; }

        /// <summary>
        /// 是否附加赛
        /// </summary>
        public bool IsExtra { get; set; }

        /// <summary>
        /// 开始时间
        /// </summary>
        public string? StartTime { get; set; }

        /// <summary>
        /// 结束时间
        /// </summary>
        public string? EndTime { get; set; }

        /// <summary>
        /// 地点
        /// </summary>
        public string? Address { get; set; }
    }
}
